﻿ 
//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//
// ***********************************************************************************************************************************
// NOTICE!!
// This content is auto-generated. Any changes will be overriden the next time the template is changed or the custom-tool is executed.
// Generated at: 01.05.2013 11:41
//
// ***********************************************************************************************************************************

using System;
using System.Reflection;
using KretschIT.WP_Fx.EasyMoq;
using KretschIT.WP_Fx.EasyMoq.Generator;

namespace KretschIT.WP_Fx.EasyMoq.Generator.Tests
{
	#region Registration

	[EasyMoqRegistration]
	public sealed class EasyMoqInit : IEasyMoqRegistration
	{
		public void Register(IMockFactoryRegistration factory)
		{
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestObject, TestObjectMockable>(() => new TestObjectMockable());
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestGenericMethod, TestGenericMethodMockable>(() => new TestGenericMethodMockable());
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ISetter, SetterMockable>(() => new SetterMockable());
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestEvents, TestEventsMockable>(() => new TestEventsMockable());
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestProperties, TestPropertiesMockable>(() => new TestPropertiesMockable());
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestGenericProperties<System.Int32>, TestGenericProperties1Mockable<System.Int32>>(() => new TestGenericProperties1Mockable<System.Int32>());  
			factory.Register<KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestGenericProperties<System.Object>, TestGenericProperties1Mockable<System.Object>>(() => new TestGenericProperties1Mockable<System.Object>());  
        }
	}

	#endregion

	#region TestObjectMockable

	class TestObjectMockable : Mockable<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestObject>, KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestObject
	{
		#region Events

 
		#endregion

		#region Methods

		public void Action()
		{
			this.Handler.Call(m => m.Action());
		}

		public void Action(System.String arg)
		{
			this.Handler.Call(m => m.Action(arg));
		}

		public void Action(KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.Dummy dummy)
		{
			this.Handler.Call(m => m.Action(dummy));
		}

		public void Action(KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.IUnknownObject unknown)
		{
			this.Handler.Call(m => m.Action(unknown));
		}

		public void Action(System.String first, System.String second)
		{
			this.Handler.Call(m => m.Action(first, second));
		}

		public void Action(System.Char first, System.Char second)
		{
			this.Handler.Call(m => m.Action(first, second));
		}

		public void OtherAction(System.String first, System.String second)
		{
			this.Handler.Call(m => m.OtherAction(first, second));
		}

		public System.Boolean Func()
		{
			return this.Handler.Call(m => m.Func());
		}

		public System.Boolean Func(System.String arg)
		{
			return this.Handler.Call(m => m.Func(arg));
		}

		public System.Boolean Func(KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.Dummy dummy)
		{
			return this.Handler.Call(m => m.Func(dummy));
		}

		public System.Boolean Func(KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.IUnknownObject unknwon)
		{
			return this.Handler.Call(m => m.Func(unknwon));
		}

		public System.Boolean Func(System.String first, System.String second)
		{
			return this.Handler.Call(m => m.Func(first, second));
		}

 
		#endregion

		#region Properties

		private const string PropertyPropertyName = "Property";

		public System.String Property
		{
			get { return this.Handler.Get(m => m.Property); }
			set { this.Handler.Set(m => m.Property, value); }
		}

		private const string OtherPropertyPropertyName = "OtherProperty";

		public System.String OtherProperty
		{
			get { return this.Handler.Get(m => m.OtherProperty); }
		}

		#endregion
	}
	
	#endregion

	#region TestGenericMethodMockable

	class TestGenericMethodMockable : Mockable<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestGenericMethod>, KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestGenericMethod
	{
		#region Events

 
		#endregion

		#region Methods

		public void Action<T>(T arg)
		{
			this.Handler.Call(m => m.Action<T>(arg));
		}

		public void Action<T1, T2>(T1 arg1, T2 arg2)
		{
			this.Handler.Call(m => m.Action<T1, T2>(arg1, arg2));
		}

		public void Action(System.String arg)
		{
			this.Handler.Call(m => m.Action(arg));
		}

		public void Action<T>(T first, System.String second)
		{
			this.Handler.Call(m => m.Action<T>(first, second));
		}

		public void Action<T>(System.Int32 first, T second)
		{
			this.Handler.Call(m => m.Action<T>(first, second));
		}

		public T Func<T>()
		{
			return this.Handler.Call(m => m.Func<T>());
		}

		public T Func<T>(T arg)
		{
			return this.Handler.Call(m => m.Func<T>(arg));
		}

		public System.String Func(System.String arg)
		{
			return this.Handler.Call(m => m.Func(arg));
		}

		public T1 Func<T1, T2>(T2 arg2)
		{
			return this.Handler.Call(m => m.Func<T1, T2>(arg2));
		}

		public T1 Func<T1, T2>(T1 arg1, T2 arg2)
		{
			return this.Handler.Call(m => m.Func<T1, T2>(arg1, arg2));
		}

 
		#endregion

		#region Properties

		#endregion
	}
	
	#endregion

	#region SetterMockable

	class SetterMockable : Mockable<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ISetter>, KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ISetter
	{
		#region Events

 
		#endregion

		#region Methods

 
		#endregion

		#region Properties

		private const string ValuePropertyName = "Value";

		public System.Int32 Value
		{
			set { this.Handler.Set(m => m.Property(ValuePropertyName), value); }
		}

		#endregion
	}
	
	#endregion

	#region TestEventsMockable

	class TestEventsMockable : Mockable<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestEvents>, KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.ITestEvents
	{
		#region Events

 
		public event System.EventHandler SimpleDone;

		public void RaiseSimpleDoneEvent(System.Object sender, System.EventArgs e)
		{
			if(this.SimpleDone != null)
			{
				this.SimpleDone(sender, e);
			}
		}

 
		public event System.EventHandler<KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.CustomEventArgs> CustomDone;

		public void RaiseCustomDoneEvent(System.Object sender, KretschIT.WP_Fx.EasyMoq.Test.Helpers.Objects.CustomEventArgs e)
		{
			if(this.CustomDone != null)
			{
				this.CustomDone(sender, e);
			}
		}

 
		#endregion

		#region Methods

		public void Action()
		{
			this.Handler.Call(m => m.Action());
		}

		public System.Int32 Func()
		{
			return this.Handler.Call(m => m.Func());
		}

 
		#endregion

		#region Properties

		private const string PropertyPropertyName = "Property";

		public System.String Property
		{
			get { return this.Handler.Get(m => m.Property); }
			set { this.Handler.Set(m => m.Property, value); }
		}

		#endregion
	}
	
	#endregion

	#region TestPropertiesMockable

	class TestPropertiesMockable : Mockable<KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestProperties>, KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestProperties
	{
		#region Events

 
		#endregion

		#region Methods

 
		#endregion

		#region Properties

		private const string IntPropertyName = "Int";

		public System.Int32 Int
		{
			get { return this.Handler.Get(m => m.Int); }
			set { this.Handler.Set(m => m.Int, value); }
		}

		private const string IntSetPropertyName = "IntSet";

		public System.Int32 IntSet
		{
			set { this.Handler.Set(m => m.Property(IntSetPropertyName), value); }
		}

		private const string LongPropertyName = "Long";

		public System.Int64 Long
		{
			get { return this.Handler.Get(m => m.Long); }
			set { this.Handler.Set(m => m.Long, value); }
		}

		private const string LongSetPropertyName = "LongSet";

		public System.Int64 LongSet
		{
			set { this.Handler.Set(m => m.Property(LongSetPropertyName), value); }
		}

		private const string ShortPropertyName = "Short";

		public System.Int16 Short
		{
			get { return this.Handler.Get(m => m.Short); }
			set { this.Handler.Set(m => m.Short, value); }
		}

		private const string ShortSetPropertyName = "ShortSet";

		public System.Int16 ShortSet
		{
			set { this.Handler.Set(m => m.Property(ShortSetPropertyName), value); }
		}

		private const string ObjectPropertyName = "Object";

		public System.Object Object
		{
			get { return this.Handler.Get(m => m.Object); }
			set { this.Handler.Set(m => m.Object, value); }
		}

		private const string ObjectSetPropertyName = "ObjectSet";

		public System.Object ObjectSet
		{
			set { this.Handler.Set(m => m.Property(ObjectSetPropertyName), value); }
		}

		private const string StringPropertyName = "String";

		public System.String String
		{
			get { return this.Handler.Get(m => m.String); }
			set { this.Handler.Set(m => m.String, value); }
		}

		private const string StringSetPropertyName = "StringSet";

		public System.String StringSet
		{
			set { this.Handler.Set(m => m.Property(StringSetPropertyName), value); }
		}

		#endregion
	}
	
	#endregion

	#region TestGenericProperties1Mockable

	class TestGenericProperties1Mockable<T> : Mockable<KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestGenericProperties<T>>, KretschIT.WP_Fx.EasyMoq.Test.IntegrationTest.Helpers.ITestGenericProperties<T>
	{
		#region Events

 
		#endregion

		#region Methods

 
		#endregion

		#region Properties

		private const string PropertyPropertyName = "Property";

		public T Property
		{
			get { return this.Handler.Get(m => m.Property); }
			set { this.Handler.Set(m => m.Property, value); }
		}

		#endregion
	}
	
	#endregion

}

 

